From: Timm Bäder Date: Tue, 13 Aug 2019 10:08:36 +0000 (+0200) Subject: scrolledwindow: Stop using _gtk_widget_set_captured_event_handler X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1~1^2~321^2^2~1021 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=6669ddad099d28e755486aa93f55f6855ebe5da8;p=gtk4.git scrolledwindow: Stop using _gtk_widget_set_captured_event_handler We can use an event controller with phase = CAPTURE these days. --- diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index 9acd6833d9..ef7cf2ec72 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -1173,13 +1173,12 @@ get_scroll_unit (GtkScrolledWindow *sw, } static gboolean -captured_event_cb (GtkWidget *widget, - GdkEvent *event) +captured_scroll_cb (GtkEventControllerScroll *scroll, + double delta_x, + double delta_y, + GtkScrolledWindow *scrolled_window) { - GtkScrolledWindow *sw = GTK_SCROLLED_WINDOW (widget); - - if (gdk_event_get_event_type (event) == GDK_SCROLL) - gtk_scrolled_window_cancel_deceleration (sw); + gtk_scrolled_window_cancel_deceleration (scrolled_window); return GDK_EVENT_PROPAGATE; } @@ -1972,8 +1971,6 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window) gtk_scrolled_window_set_kinetic_scrolling (scrolled_window, TRUE); gtk_scrolled_window_set_capture_button_press (scrolled_window, TRUE); - _gtk_widget_set_captured_event_handler (widget, captured_event_cb); - controller = gtk_event_controller_motion_new (); gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE); g_signal_connect_swapped (controller, "motion", @@ -2012,6 +2009,12 @@ gtk_scrolled_window_init (GtkScrolledWindow *scrolled_window) G_CALLBACK (scroll_controller_decelerate), scrolled_window); gtk_widget_add_controller (widget, controller); + controller = gtk_event_controller_scroll_new (GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES | + GTK_EVENT_CONTROLLER_SCROLL_KINETIC); + gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE); + g_signal_connect (controller, "scroll", + G_CALLBACK (captured_scroll_cb), scrolled_window); + controller = gtk_event_controller_motion_new (); g_signal_connect (controller, "leave", G_CALLBACK (motion_controller_leave), scrolled_window);